package com.zpark.se.date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

/**
 * 日期格式化：
 *      DateFormat 是日期/时间格式化子类的抽象类，它以与语言无关的方式格式化并解析日期或时间。
 * 日期/时间格式化子类（如 SimpleDateFormat）允许进行格式化（也就是日期→文本）、解析（文本→日期）
 * 和标准化日期。
 *      SimpleDateFormat 类
 *      如果使用 DateFormat 类格式化日期/时间并不能满足要求，那么就需要使用 DateFormat 类的
 * 子类——SimpleDateFormat。
 *		SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类，它允许进行格
 * 式化（日期→文本）、解析（文本→日期）和规范化。SimpleDateFormat 使得可以选择任何用户定义的日
 * 期/时间格式的模式。
 */
public class Demo03 {
    public static void main(String[] args) throws ParseException {
        // 创建SimpleDateFormat，并且指定日期的格式
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒SSS毫秒 " +
                "这是MM月的第dd 这是yyyy年的第DD天 今天是E", Locale.CHINA);
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        // 获取当前系统时间
        Date date = new Date();
        System.out.println(date);
        // 将当前系统时间对象格式化
        String s1 = sdf1.format(date);
        System.out.println(s1);
        String s2 = sdf2.format(date);
        System.out.println(s2);
        String s3 = sdf3.format(date);
        System.out.println(s3);

        // 将文本的时间转为date对象
        Date parse = sdf2.parse("2021/08/26 14:44:46");
        System.out.println(parse);
    }
}
